package cn.letlet.util;
import cn.letlet.utils.Position;

public class LetUtil {
	
	public static String sqToICCS(int sq){
		int temp_y = sq / 16 - 3;
		int x = sq % 16 - 3;
		int y = 9 - temp_y;
		String x_alpha = String.valueOf(intToAlpha(x));
		return x_alpha+String.valueOf(y);
	}
	
	/**
	 * 将ICCS的坐标格式(如h2e2)换成界面的坐标数组(如[1,7,4,7])
	 * @param ICCS
	 * @return coord 界面数组([sq1,sq2])
	 */
	public static int[] ICCStoSq(String ICCS){
		char[] ICCS_char_array = ICCS.toCharArray();
		int[] positions = {alphaToInt(ICCS_char_array[0]),reverseInt(Character.getNumericValue(ICCS_char_array[1])),alphaToInt(ICCS_char_array[2]),reverseInt(Character.getNumericValue(ICCS_char_array[3]))};
		int[] coord_xy = {Position.COORD_XY(positions[0]+3,positions[1]+3),Position.COORD_XY(positions[2]+3, positions[3]+3)};
		return coord_xy;
	}
	
	/**
	 * 将ICCS的y坐标转换成界面认识的坐标
	 * @param num ICCS的y
	 * @return 界面的y
	 */
	private static int reverseInt(int num){
		return 9-num;
	}
	
	/**
	 * 将ICCS的x坐标转换成界面认识的坐标
	 * @param alpha ICCS的x
	 * @return 界面的x
	 */
	private static int alphaToInt(char alpha){
		int result=10;
		switch(alpha){
		case 'a':
			result=0;
			break;
		case 'b':
			result=1;
			break;
		case 'c':
			result=2;
			break;
		case 'd':
			result=3;
			break;
		case 'e':
			result=4;
			break;
		case 'f':
			result=5;
			break;
		case 'g':
			result=6;
			break;
		case 'h':
			result=7;
			break;
		case 'i':
			result=8;
			break;	
		}
		return result;
	}
	
	private static char intToAlpha(int alpha){
		char result = (char)(alpha+97);
		return result;
	}
	
	
//	public static String pcToFen(byte[] pc,int sdPlayer){
//		byte[] board = new byte[90];
//		int sq;
//		int b=0;
//		for (sq = 0; sq < 256; sq ++) {
//			if (Position.IN_BOARD(sq)) {
//				board[b]=pc[sq];
//				b++;
//			}
//		}
//		
//		int i;
//		int j=9;
//		StringBuffer fen= new StringBuffer();
//		int fc;
//		int blank_no = 0;
//		
//		for (i = 0; i <= 90; i++ ) {
//			fc = board[i];
//			if (fc != 0) {
//				if (blank_no != 0) {
//					fen.append(blank_no);
//					blank_no = 0;
//				}
//				fen.append(p2fen(fc));
//			}else {
//				blank_no++;
//			}
//			if ((i + 1) % j == 0) {
//				if (blank_no != 0) {
//					fen.append(blank_no);
//					blank_no = 0;
//				}
//				fen.append("/");
//			}
//			
//		}
//		String fen_result = fen.substring(0, fen.lastIndexOf("/"));
//		if (sdPlayer == 0) {
//			fen_result += " w";
//		}else {
//			fen_result += " b";
//		}
//		return fen_result;
//	}
//	
//	private static String p2fen(int p){
//			switch(p) {
//			case 20:
//				return "r";
//			case 19:
//				return "n";
//			case 18:
//				return "b";
//			case 17:
//				return "a";
//			case 16:
//				return "k";
//			case 21:
//				return "c";
//			case 22:
//				return "p";
//			case 14:
//				return "P";
//			case 13:
//				return "C";
//			case 12:
//				return "R";
//			case 11:
//				return "N";
//			case 10:
//				return "B";
//			case 9:
//				return "A";
//			case 8:
//				return "K";
//			default:
//			return "-1";
//			}
//	}

}
